package com.lee.demo.ui.activity;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.lee.demo.R;

/**
 * ConstraintLayout优点：
 * 1、非常适合使用可视化编写界面，不太适合XML方式编写
 * 2、有效地解决布局嵌套过多问题，可看成升级版本的RelativeLayout
 * 3、约束布局中未加约束的子控件运行后在页面左上角
 * 4、相对定位：值为 parent和 @+id/子控件id
 * 以下 view1 指设置该属性的View，view2 指其他View，或者 parent
 * layout_constraintLeft_toLeftOf  view1左边对齐view2的左边
 * layout_constraintLeft_toRightOf  view1左边对齐view2的右边
 * layout_constraintRight_toLeftOf  view1右边对齐view2的左边
 * layout_constraintRight_toRightOf  view1右边对齐view2的右边
 * layout_constraintTop_toTopOf  view1顶部对齐view2的顶部
 * layout_constraintTop_toBottomOf  view1顶部对齐view2的底部
 * layout_constraintBottom_toTopOf  view1底部对齐view2的顶部
 * layout_constraintBottom_toBottomOf  view1底部对齐view2的底部
 * layout_constraintBaseline_toBaselineOf  view1基准线对齐view2的基准线 （当控件不一样高时候，可让控件内容对齐）
 * layout_constraintStart_toEndOf  view1起始位置对齐view2的结束位置
 * layout_constraintStart_toStartOf  view1起始位置view2的起始位置
 * layout_constraintEnd_toStartOf  view1结束位置对齐view2的起始位置
 * layout_constraintEnd_toEndOf  view1结束位置对齐view2的结束位置、
 * 注意：
 * （1）子布局在父布局中居中用：
 * app:layout_constraintLeft_toLeftOf="parent"
 * app:layout_constraintRight_toRightOf="parent"
 * （2）在父布局左边对齐：
 * app:layout_constraintLeft_toLeftOf="parent"
 * <p>
 * 5、偏心定位
 * app:layout_constraintHorizontal_bias 子控件左边与父控件左边的距离，水平偏移，默认为0.5即50%
 * app:layout_constraintVertical_bias  垂直偏移，默认为0.5即50%
 * <p>
 * 6、循环定位
 * layout_constraintCircle ：引用另一个小部件ID
 * layout_constraintCircleRadius ：到其他小部件中心的距离
 * layout_constraintCircleAngle ：小部件应处于哪个角度（度数，从0到360）
 *
 * 7、宽高比 layout_constraintDimensionRatio
 * 根据高或者宽的比例来设置组件大小（将宽或者高的其中一个设置为0dp，然后使用app:layout_constraintDimensionRatio="1:1"属性来设置其宽高比）
 *
 * 8、layout_goneMarginLeft要配合 layout_marginLeft一起使用
 *
 * 9、 view的尺寸 ：wrap_content、指定尺寸、match_parent(官方不推荐使用match_parent) 、0dp（官方取名叫MATCH_CONSTRAINT）
 *  0dp不是指大小是0dp，而是有特殊含义
 *  1、配合 layout_constraintWidth_default使用 该属性有3个值
 *  （1）spread  默认值，意思是占用所有的符合约束的空间
 *  （2）percent 意思是按照父布局的百分比设置,需要layout_constraintWidth_percent设置百分比例
 *    eg：     app:layout_constraintWidth_default="percent"
 *             app:layout_constraintWidth_percent="0.4"
 *        子控件的宽度设为0.4，则其宽度为父布局的0.4倍。
 *        另外，设置了layout_constraintWidth_percent属性，可以不用指定layout_constraintWidth_default，他会自动设置为percent
 *  （3）wrap 意思匹配内容大小但不超过约束限制，注意和直接指定宽度为wrap_content的区别就是不超过约束限制，
 * 10、在1.1上 对于wrap_content会超过约束限制，谷歌又新增了如下属性
 *     app:layout_constrainedWidth=”true|false”
 *     app:layout_constrainedHeight=”true|false”
 *     设置为true也可以限制内容不超过约束(这样感觉layout_constraintWidth_default这个属性已经没什么用了)
 */
public class ConstraintLayoutActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_constraint_layout);
    }
}
